Houdiniメモ : 五芒星を作る
以下のような五芒星を作る方法を紹介します。
https://gyazo.com/3942bc42511426f45d4c4bbf759d72e9
方法1 : 正五角形の頂点を一つ飛ばしで結ぶ
正五角形の頂点を1つ飛ばしで結んでいくと、五芒星ができます。
https://gyazo.com/ffad5fb300380c67d68327242a7b3d73
ネットワーク構成
■正五角形を作る
Circleノードで正五角形を作ります。
table:Circleパラメータ
Primitive Type Polygon
Divisons 5
https://gyazo.com/e7ece98056067bf282035d8b34d66363
■直線の削除
多角形のせんは不要なので、Addノードでポイントだけを残します。
Delete Geometry But Keep Pointsのチェックを入れることでポイントを残したまま、ジオメトリだけ削除できます。
https://gyazo.com/8e2273d869aabefa23854154a70a17b2
■五芒星の作成
AttributeWrangleノードで、ポイントを一つ飛ばしで結んでいきます。
code:AttributeWrangle(c)
int nextPt = (@ptnum + 2) % @numpt; // 二つ後のポイント番号(@numptを超えたら0に戻る)
addprim(geoself(), "polyline", @ptnum, nextPt);
https://gyazo.com/45f93048888dd16457cf5b3217226818
方法2 : 直線を72°ずつ回転させる
原点から離れた位置にある線分を原点周りに72°(=360°/5)ずつ回転させていくと、五芒星ができます。
https://gyazo.com/684ef03c113ad2272fe00ab5ef7472df
この方法では、直線を72°回転させたときに両端をピッタリ合うようにする必要があります。
長さ2の線分の場合は、原点からの距離を $ tan(18 ^\circ ) にすることで、72°回転させたときに両端がぴったり合います。
https://gyazo.com/7356e79b879ad708cb66d0df64b863a1
長さが1の場合は原点からの距離は $ 0.5 \cdot tan(18 ^\circ ) になります。
ネットワーク構成
■ 直線の作成
原点からの距離が0.5 * tan(18°)の直線をLineノードで作成します。
table:Line
origin(x) 0.5 * tan(18)
origin(y) -0.5
https://gyazo.com/b4a0ca435aead652d09ffd7b1302abdc
■ 直線を72°ずつ回転させる
直線を原点周りに72°ずつ回転させることで、五芒星になります。
table:Copy and Transform
Total Number 5
Rotate(z) 72
https://gyazo.com/e22e5c273b3193baa7a97fbb6be60f75